﻿#ifndef CLS_WGTTOOLBAR_H
#define CLS_WGTTOOLBAR_H

#include <QToolBar>
#include <QPaintEvent>
#include "CLS_ItemButton.hpp"
/**
类名称 : CLS_WgtItemToolBar
功能 : 节点toolbar控件实现类
备注 : 无
典型用法: 无
**/
class CLS_WgtItemToolBar : public QToolBar
{
    Q_OBJECT
public:
    /**
    函 数 名：  CLS_WgtItemToolBar
    功能描述：  构造函数
    输入参数：  _pParent:父控件
    输出参数：
    返 回 值：
    其   它：
    **/
    explicit CLS_WgtItemToolBar(QWidget *_pParent = nullptr);

    /**
    函 数 名：  Init
    功能描述：  初始化：给button绑定信息
    输入参数：  _vecBtnList : button列表信息 _qstrItemId : 节点ID
    输出参数：
    返 回 值：
    其   它：
    **/
    void Init(const QVector<CLS_ItemButton> &_vecBtnList, const QString _qstrItemId = "");

    /**
    函 数 名：  SetLang
    功能描述：  设置语言
    输入参数：  _qstrLang：语言字符串
    输出参数：
    返 回 值：
    其   它：
    **/
    void SetLang(const QString &_qstrLang);

    /**
    函 数 名：  LoadStyleSheet
    功能描述：  设置样式
    输入参数：  _qstrStyle：样式字符串
    输出参数：
    返 回 值：
    其   它：
    **/
    void LoadStyleSheet(const QString &_qstrStyle);

    /**
    函 数 名：paintEvent
    功能描述：窗口重绘事件
    输入参数：_pEvent - 事件指针
    输出参数：无
    返 回 值：无
    其   它：无
    **/
    void paintEvent(QPaintEvent* _pEvent) Q_DECL_OVERRIDE;

public slots:
    /**
    函 数 名：  SlotTriggered
    功能描述：  button点击触发槽
    输入参数：  _pAction：菜单项
    输出参数：
    返 回 值：
    其   它：
    **/
    void SlotTriggered(QAction *_pAction);

signals:
    /**
    函 数 名：  SignTriggered
    功能描述：  button点击信号
    输入参数：  _qstrParentId : 父Id，_clsBtn：菜单绑定的信息
    输出参数：
    返 回 值：
    其   它：
    **/
    void SignTriggered(QString _qstrParentId, CLS_ItemButton _clsBtn);

private:
    /** 功能: m_qstrItemId - 节点Id **/
    QString m_qstrItemId = "";
};

#endif // CLS_WGTTOOLBUTTON_H
